package com.ruicar.afs.cloud.risk.tortoise.util;

import cn.hutool.core.util.StrUtil;
import com.ruicar.afs.cloud.common.core.enums.AfsBaseEnum;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumUtil;
import lombok.experimental.UtilityClass;

import java.util.Objects;

/**
 * @Description
 * @Author Peng Jinbo
 * @Date 2020/08/03 14:35
 */
@UtilityClass
public class AfsEnumEmptyUtil {

    /**
     * Author Peng Jinbo
     * Key string
     *
     * @param enumEntity enum entity
     * @return the string
     */
    public String key(AfsBaseEnum enumEntity) {
        return Objects.isNull(enumEntity) ? null : AfsEnumUtil.key(enumEntity);
    }

    /**
     * Author Peng Jinbo
     * Desc string
     *
     * @param enumEntity enum entity
     * @return the string
     */
    public String desc(AfsBaseEnum enumEntity){
        return Objects.isNull(enumEntity) ? null : AfsEnumUtil.desc((Enum)enumEntity);
    }

    /**
     * Author Peng Jinbo
     * Get enum t
     *
     * @param <T>     parameter
     * @param key     key
     * @param enumClz enum clz
     * @return the t
     */
    public <T> T getEnum(String key,Class<T> enumClz){
        return StrUtil.isBlank(key) || !AfsBaseEnum.class.isAssignableFrom(enumClz) ? null : (T) AfsEnumUtil.getEnum(key,enumClz);
    }

}
